var jweixin = require('jweixin-module');
import {
	post
} from "@/utils/post.js";
import {
	showM
} from "@/core/show.js"
import siteInfo from '../siteinfo';
import Api from '../core/appOnLaunch.js';
var ifSign = false
export default {
	//判断是否在微信中    
	isWechat: function() {
		var ua = window.navigator.userAgent.toLowerCase();
		if (ua.match(/micromessenger/i) == 'micromessenger') {
			//console.log('是微信客户端')  
			return true;
		} else {
			//console.log('不是微信客户端')  
			return false;
		}
	},
	initJssdk: function(callback,refresh) {
		if(ifSign && !refresh){
			callback && callback()
			return
		}
		//var uri = encodeURIComponent(window.location.href.split('#')[0]); //获取当前url然后传递给后台获取授权和签名信息  
		//var uri = window.location.href.split('?')[0];
		var uri = window.location.href
		console.log(uri)
		post(Api.wx.config, {
			url: uri
		}, false, res => {
			console.log(res)
			//返回需要的参数appId,timestamp,noncestr,signature等
			//注入config权限配置  
			jweixin.config({
				debug: false,
				appId: res.data.appid,
				timestamp: res.data.timestamp,
				nonceStr: res.data.noncestr,
				signature: res.data.signature,
				jsApiList: [ //这里是需要用到的接口名称  
					'checkJsApi', //判断当前客户端版本是否支持指定JS接口  
					'onMenuShareAppMessage', //分享接口  
					'getLocation', //获取位置  
					'openLocation', //打开位置  
					'scanQRCode', //扫一扫接口  
					'chooseWXPay', //微信支付  
					'chooseImage', //拍照或从手机相册中选图接口  
					'previewImage', //预览图片接口  
					'uploadImage', //上传图片  
					'hideMenuItems',
					'onMenuShareTimeline'
				]
			});
			if (callback) {
				setTimeout(()=>{
					ifSign = true
					callback(res.data);
				},500)
			}
		})
	},
	//在需要定位页面调用  
	getlocation: function(callback,fail) {
		if (!this.isWechat()) {
			//console.log('不是微信客户端')  
			return;
		}
		this.initJssdk(function(res) {
			jweixin.ready(function() {
				jweixin.getLocation({
					type: 'gcj02', // 默认为wgs84的gps坐标，如果要返回直接给openLocation用的火星坐标，可传入'gcj02'  
					success: function(res) {
						callback(res)
					},
					fail: function(res) {
						ifSign = false
						fail && fail()
					},
				});
			});
			jweixin.error(function(res){
				ifSign = false
				fail && fail()
			});
		});
	},
	openlocation: function(data, callback) { //打开位置  
		if (!this.isWechat()) {
			//console.log('不是微信客户端')  
			return;
		}
		this.initJssdk(function(res) {
			jweixin.ready(function() {
				jweixin.openLocation({ //根据传入的坐标打开地图  
					latitude: data.latitude,
					longitude: data.longitude
				});
			});
		});
		jweixin.error(function(res){
			ifSign = false
		});
		
	},
	chooseImage: function(callback) { //选择图片  
		if (!this.isWechat()) {
			//console.log('不是微信客户端')  
			return;
		}
		this.initJssdk(function(res) {
			jweixin.ready(function() {
				jweixin.chooseImage({
					count: 1,
					sizeType: ['compressed'],
					sourceType: ['album'],
					success: function(rs) {
						callback(rs)
					}
				})
			});
		});
		jweixin.error(function(res){
			ifSign = false
		});
		
	},
	shareWX: function(sharedata,fail) {
		
		post(Api.wx.get_invite_code,{},false,res=>{
			var invite_id = res.data.invite_code || '0'
			if (sharedata.type) {
				var share0 = siteInfo.main + sharedata.url + '?&goods=' + sharedata.goods +
					'&mch_id=' + sharedata.mch_id + '&type=' + sharedata.type +'&invite_id='+invite_id
			}else if(sharedata.goods){
				var share0 = siteInfo.main + sharedata.url + '?&goods=' + sharedata.goods +
					'&mch_id=' + sharedata.mch_id +'&invite_id='+invite_id
			} else {
				var share0 = siteInfo.main + sharedata.url + '?mch_id=' + sharedata.mch_id +'&invite_id='+invite_id
			}
			console.log(share0)
			var wxshare_config = {
				title: sharedata.title, // 分享标题  分享朋友
				desc: sharedata.desc, // 分享描述
				link: share0, // 分享链接，该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
				imgUrl: sharedata.imgurl, // 分享图标
				type: 'link', // 分享类型,music、video或link，不填默认为link
				dataUrl: '', // 如果type是music或video，则要提供数据链接，默认为空
				success: function() {
					//alert('分享成功！');
					// 用户确认分享后执行的回调函数00000
				},
				cancel: function() {
					// 用户取消分享后执行的回调函数
				}
			};
			var wxshare_config_timeline = {
				title: sharedata.title, // 分享标题
				desc: sharedata.desc,
				link: share0, // 分享链接，该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
				imgUrl: sharedata.imgurl, // 分享图标
				success: function() {
					//alert('分享成功！');
					// 用户确认分享后执行的回调函数
				},
				cancel: function() {
					// 用户取消分享后执行的回调函数
				}
			};
			this.initJssdk(function(result) {
				jweixin.ready(function() {
					jweixin.onMenuShareAppMessage(wxshare_config); //分享朋友
					jweixin.onMenuShareTimeline(wxshare_config_timeline); //朋友圈
					jweixin.hideMenuItems({
						menuList: ["menuItem:share:qq", "menuItem:share:weiboApp", "menuItem:share:facebook",
							"menuItem:share:QZone", "menuItem:openWithSafari", "menuItem:openWithQQBrowser",
							"menuItem:originPage"
						] // 要隐藏的菜单项，只能隐藏“传播类”和“保护类”按钮
					});
				});
				jweixin.error(function(res){
					ifSign = false
					fail && fail('err')
				});
			});
		},f=>{
			ifSign = false
			fail && fail('err')
		})
	},
	//微信支付  
	wxpay: function(data, callback) {
		this.initJssdk(function(res) {
			jweixin.ready(function() {
				jweixin.chooseWXPay({
					timestamp: data.timeStamp, // 支付签名时间戳，注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符  
					nonceStr: data.nonceStr, // 支付签名随机串，不长于 32 位  
					package: data.package, // 统一支付接口返回的prepay_id参数值，提交格式如：prepay_id=\*\*\*）  
					signType: data.signType, // 签名方式，默认为'SHA1'，使用新版支付需传入'MD5'  
					paySign: data.paySign, // 支付签名  
					success: function(res) {
						callback(1)
					},
					fail: function(res) {
						callback(0)
					},
					cancel: function() {
						callback(2)
					},
					complete: function(res) {
						// console.log(res)  
					}
				});
			});
			jweixin.error(function(res){
				ifSign = false
			});
		},true);
	},

}
